home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et3_0-a1.lha / et3 / src / Token.h < prev    next >
C/C++ Source or Header  |  1992-04-27  |  3KB  |  90 lines

  1. #ifndef Token_First
  2. #ifdef __GNUG__
  3. //pragma once
  4. #pragma interface
  5. #endif
  6. #define Token_First
  7.  
  8. #include "Rectangle.h"
  9.  
  10. enum EvtCursorDir {
  11.     eCrsUp,
  12.     eCrsDown,
  13.     eCrsLeft,
  14.     eCrsRight
  15. }; 
  16.  
  17. enum EventCodes {
  18.     eEvtNone        = -1,
  19.     eEvtAscFirst    = 0,
  20.     eEvtAscLast     = 127,
  21.     eEvtMetaFirst   = 128,   // returned if key depressed with 'Left' or 'Right' key
  22.     eEvtMetaLast    = 255,
  23.     eEvtPseudo      = 0x7f << 8,
  24.     eEvtLocMove     = eEvtPseudo + 0,
  25.     eEvtLocStill    = eEvtPseudo + 1,
  26.     eEvtEnter       = eEvtPseudo + 2,
  27.     eEvtExit        = eEvtPseudo + 3,
  28.     eEvtLocMoveBut  = eEvtPseudo + 4,
  29.     eEvtIdle        = eEvtPseudo + 5,
  30.     eEvtButtons     = eEvtPseudo + 32,
  31.         eEvtLeftButton  = eEvtButtons + 0,
  32.         eEvtMiddleButton= eEvtButtons + 1,
  33.         eEvtRightButton = eEvtButtons + 2,
  34.     eEvtPfkFirst    = eEvtPseudo + 42,
  35.         eEvtPfkLast     = eEvtPfkFirst + 64,
  36.     eEvtFirstCursorKey= eEvtPseudo + 128,
  37.         eEvtCursorUp    = eEvtFirstCursorKey + eCrsUp,
  38.         eEvtCursorDown  = eEvtFirstCursorKey + eCrsDown,
  39.         eEvtCursorLeft  = eEvtFirstCursorKey + eCrsLeft,
  40.         eEvtCursorRight = eEvtFirstCursorKey + eCrsRight,
  41.         eEvtLastCursorKey= eEvtCursorRight
  42. };
  43.  
  44. enum EventFlags {
  45.     eFlgNone        = 0,
  46.     
  47.     eFlgButDown     = BIT(0),
  48.     eFlgShiftKey    = BIT(1),
  49.     eFlgCntlKey     = BIT(2),
  50.     eFlgMetaKey     = BIT(3) // left or right keys on SUN-2 and SUN-3 keyboards 
  51. }; 
  52.   
  53. class Token {
  54. public:
  55.     short Code;   // enum EventCodes
  56.     short Flags;  // enum EventFlags
  57.     u_long At;
  58.     Point Pos;
  59.     
  60. public:
  61.     Token();
  62.     Token(EventCodes, EventFlags f= eFlgNone, Point pos= gPoint0);
  63.     
  64.     bool DoubleClick(Token &t);
  65.     bool IsAscii()
  66.     { return (bool) (Code >= eEvtAscFirst && Code <= eEvtAscLast); }
  67.     bool IsMeta()
  68.     { return (bool) (Code >= eEvtMetaFirst && Code <= eEvtMetaLast); }
  69.     bool IsControl()
  70.     { return (bool) (Code >= eEvtAscFirst && Code <= eEvtAscLast); }
  71.     bool IsKey()
  72.     { return (bool) (Code >= eEvtAscFirst && Code <= eEvtMetaLast); }
  73.     bool IsFunctionKey()
  74.     { return (bool) (Code >= eEvtPfkFirst && Code <= eEvtPfkLast); }
  75.     bool IsCursorKey()
  76.     { return (bool) (Code >= eEvtFirstCursorKey
  77.                         && Code <= eEvtLastCursorKey); }
  78.     bool IsMouseButton()
  79.     { return (bool) (Code >= eEvtButtons && Code <= eEvtRightButton); }
  80.     char MapToAscii();
  81.     Point CursorPoint();
  82.     EvtCursorDir CursorDir()
  83.     { return (EvtCursorDir)((EvtCursorDir)Code - eEvtFirstCursorKey); }
  84.     int FunctionCode()
  85.     { return Code - eEvtPfkFirst; }
  86.     void Dump();
  87. };
  88.  
  89. #endif
  90.